home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 126-150 / scopedisk127 / snakepit / readme < prev    next >
Text File  |  1995-03-19  |  15KB  |  370 lines

  1.                                  SnakePit
  2.                                     by
  3.                                Michael Sinz
  4.  
  5.                  Copyright (c) 1988 - MKSoft Development
  6.  
  7. SnakePit is a simple and yet addictive game in which you must get the
  8. snake (you) off of the screen.  There are, however, some rough spots
  9. and some obstacles that may need to be overcome.
  10.  
  11. This game was written as an example of how to do a game that is as
  12. system friendly as possible.  During development, there was joystick
  13. control of the snake and I was able to have my little brother play it
  14. in the top-half of a 400-line screen while I was working on code in the
  15. bottom half.  Since this is a quick (1-week) hack that was done back in
  16. 1988 and since it was written in pre-ANSI Manx days, the code looks a
  17. bit ugly.  I hope you can understand.
  18.  
  19. If you come up with some good screens for SnakePit, please send them
  20. to me.
  21.  
  22. ************************************************************************
  23.  
  24.     Reading legal mush can turn your brain into guacamole!
  25.  
  26.         So here is some of that legal mush:
  27.  
  28. Permission is hereby granted to distribute this program's source,
  29. executable, and documentation for non-commercial purposes, so long as
  30. the copyright notices are not removed from the sources, executable or
  31. documentation.  This program may not be distributed for a profit
  32. without the express written consent of the author Michael Sinz.
  33.  
  34. This program is not in the public domain.
  35.  
  36. Fred Fish is expressly granted permission to distribute this program's
  37. source and executable as part of the "Fred Fish freely redistributable
  38. Amiga software library."
  39.  
  40. Permission is expressly granted for this program and it's source to be
  41. distributed as part of the Amicus Amiga software disks, and the First
  42. Amiga User Group's Hot Mix disks.
  43.  
  44. ************************************************************************
  45.  
  46. If you have any comments or suggestions (or bug reports :-(), you can
  47. contact MKSoft Development via
  48.  
  49.     BIX:        "msinz"
  50. or    USENET:        "rutgers!cbmvax!mks"
  51. or    INTERNET:    "mks@cbmvax.commodore.com"
  52.  
  53. or via USnail at the address below.
  54.  
  55. If you enjoy this program, and would like to see more quality software
  56. for the Amiga, please help "feed the programmer" For only $20 you will
  57. get a disk with the latest and greatest of MKSoft Development.
  58.  
  59.         MKSoft Development
  60.         163 Appledore Drive
  61.         Downingtown, PA 19335
  62.  
  63. ************************************************************************
  64.  
  65. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  66.                             User's Guide
  67.  
  68. Overview:
  69.  
  70. SnakePit is a simple action game in which your character (the snake)
  71. must be maneuvered out of the various screens.  You must, however,
  72. realize that a snake can not backup nor can it bit itself.  There are a
  73. few objects on the screen that can cause problems during your attempt
  74. to exit the screen.
  75.  
  76. SnakePit can take data files which can contain new screens for an
  77. endless supply of screens.
  78.  
  79. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  80. Starting the program:
  81.  
  82. SnakePit can be started from the CLI or the WorkBench.  In either case,
  83. you may start the program with or without a data file.
  84.  
  85. From the WorkBench:
  86.  
  87. If the program is started directly from the WorkBench, all of the
  88. screens, keyboard definitions, and high scores will come from within
  89. the executable file.  Any screens that are modified, keyboard mappings
  90. that are changed, or new high scores will be saved back into the
  91. executable for the next time.
  92.  
  93. If the program is started from a project icon (there is one provided)
  94. it will use the screens, keyboard mapping, and high scores from that
  95. file.  If that file does not exist, it will create it from the built-in
  96. copy of that data.  All changes to the screens, keyboard, or high
  97. scores will be saved in this data file.
  98.  
  99. From the CLI:
  100.  
  101. If SnakePit is started without parameters, all of the screens, keyboard
  102. definitions, and high scores will come from within the executable file.
  103. Any screens that are modified, keyboard mappings that are changed, or
  104. new high scores will be saved back into the executable for the next
  105. time.  This will NOT happen if SnakePit program can not find its
  106. executable.
  107.  
  108. If the program is started with a filename parameter, it will use the
  109. screens, keyboard mapping, and high scores from that file.  If that
  110. file does not exist, it will create it from the built-in copy of that
  111. data.  All changes to the screens, keyboard, or high scores will be
  112. saved in this data file.
  113.  
  114. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  115. The Main Screen:
  116.  
  117. At the main screen, also known as the title screen, there are a few
  118. menu options.
  119.  
  120. Project Menu: - This menu contains the following options:
  121.  
  122.     PLAY                            (AMIGA-P)
  123.         This starts the game.  At which point a requester
  124.         is brought up to let you select the starting level.
  125.  
  126.     DEFINE KEYS                        (AMIGA-K)
  127.         This brings up the keyboard definition requester.
  128.  
  129.     EDIT                            (AMIGA-E)
  130.         This puts SnakePit into the LEVEL EDIT mode, at which
  131.         point the level select requester will ask which level
  132.         you wish to edit.
  133.  
  134.     DRUMS ON/OFF
  135.         This lets you turn off the drum sounds.
  136.  
  137.     SOUND ON/OF
  138.         This lets you turn off ALL sounds.
  139.  
  140.     QUIT                            (AMIGA-Q)
  141.         Exit SnakePit and save any changes to the screens,
  142.         keyboard, or high scores.
  143.  
  144.     HIGH SCORES
  145.         This is for information only.  When you are on this
  146.         item, the high scores are display to the right.
  147.         If you highlight a score that is displayed at the
  148.         right and release the menu button, the full high scores
  149.         requester will come up for display only.
  150.  
  151. Speed Menu:
  152.  
  153.     This menu contains items 1 to 9 with AMIGA-key 1 to 9 to
  154.     select from the keyboard.  This selects the starting speed
  155.     of the Snake.
  156.  
  157. Edit Menu:
  158.  
  159.     This menu is disabled except when in edit mode.  It will be
  160.     described in the edit part of this manual.
  161.  
  162. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  163.                                Game Play
  164.  
  165. After selecting the PLAY menu item from the main screen, you will be
  166. asked to select the starting level.  The level is the screen number at
  167. which you wish to start.  There are 50 screens in a SnakePit "game."
  168.  
  169. You may select the screen by typing the number of the screen (with a
  170. leading zero for screens 1 to 9) and pressing RETURN or ENTER.  You may
  171. use the LEFT or RIGHT arrows to make the number go UP or DOWN. And you
  172. may use the mouse and click on the left and right arrows.
  173.  
  174. After having selected your starting level, the screen will blank and
  175. the game will start.
  176.  
  177. Starting a level:
  178.  
  179. The level will fade onto the screen and your snake will be in the edge
  180. of the screen somewhere.  It will not move until you press one of the
  181. directional keys on the keyboard.  (As defined in the DEFINE KEYS
  182. requester.  The default to the ARROW keys.)
  183.  
  184. Object of the game:
  185.  
  186. The object is to get the snake off of the screen.  This may sound
  187. easier than it is.
  188.  
  189. One many screens, the way out is blocked by what looks like a solid
  190. brick wall.  In these cases, all you have to do is eat all of the
  191. "grow" food pellets and suddenly one or more bricks will vanish. The
  192. "grow" food pellets (the light coloured round objects) have one major
  193. side effect.  Each one makes your snake one segment larger. When you
  194. exit the screen, you get points based on how long your snake is.  The
  195. longer the snake, the more points.  But, with a longer snake you are
  196. more likely going to get yourself into a position where you can not
  197. move or where you bite yourself.  Both of these mean death.
  198.  
  199. In order to help, some screens will also have darker food pellets that
  200. will make you shrink by one segment.  While this will reduce your final
  201. score, there are times when you must make your snake smaller in order
  202. to finish a part of the level.  One warning, though:  If your snake
  203. still is very small, you could shrink out of existence.  For each
  204. "shrink" pellet you eat, you must have eaten one "grow" pellet.
  205.  
  206. Also on some screens are some lighter coloured bricks.  These "pink"
  207. bricks are not fixed in place and can be moved by the snake.  However,
  208. the snake is not strong enough to move one of those bricks if there is
  209. anything on the other side, including another movable brick.
  210.  
  211. Another obstacles is the POP-UP brick.  These bricks are level with the
  212. ground and are not visible until the snake goes over them.  After the
  213. snake has traveled over the brick, it pops up and is like any other
  214. brick.  This can may for one-time paths and are used in many of the
  215. more complex screens.  POP-UP bricks are also the entrance to the level.
  216.  
  217. After each level, you receive another life and the next level is
  218. presented.  If you finish level 50, you are restarted at level 1. As
  219. long as you are playing, however, the speed of the snake slowly gets
  220. faster and the second time around (if you can make it the first
  221. time...) will be more difficult.
  222.  
  223. If at any moment, the snake is stopped and you do not select a new
  224. direction for the snake to go, the snake will pick, at random, a new
  225. direction.
  226.  
  227. Pausing the game:
  228.  
  229. During game play, pressing ESC or the MENU button will pause the game
  230. and display a requester.  Pressing RETURN or ENTER will restart the
  231. game.  ABORT will kill the current life and QUIT will quit the current
  232. GAME.
  233.  
  234. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235.                              High Scores
  236.  
  237. If your score well enough to have your name on the high score board,
  238. the score board will be displayed with a cursor in the line where you
  239. are to enter your name.  You may type in your name or use the character
  240. gadgets to enter your name.  When done entering your name, just press
  241. RETURN or ENTER or click on the DONE gadget.
  242.  
  243. When you want the requester to go away press the ESC key.
  244.  
  245. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  246.                           Defining the keys
  247.  
  248. After having selected the DEFINE KEYS option from the PROJECT menu, a
  249. requester will come up to let you define the keys.
  250.  
  251. The requester will have the four arrows on it and a box by the arrows
  252. telling what key that is.
  253.  
  254. Since this requester lets you define the keys, you will need to use the
  255. mouse to select which one you wish to define.  Just click on the
  256. direction you wish to define.  The box will the display ??.  Now, press
  257. the key you wish to define as that direction.  The box will now show
  258. the code for that key.  (If it can find one.)
  259.  
  260. When you are happy with the selection, click on the continue gadget.
  261.  
  262. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  263.                               Edit Level
  264.  
  265. After selecting EDIT from the PROJECT menu, you will be asked to select
  266. the level.  This is the same requester as in the game play part of the
  267. program.
  268.  
  269. Editing a level:
  270.  
  271. The level selected will be drawn onto the screen and your mouse pointer
  272. will become a BOX.  At this point the EDIT menu will become active.
  273.  
  274. The EDIT menu contains the LEVEL (save,load,clear) commands, the EDIT
  275. tools, and the END EDIT command.
  276.  
  277. The LEVEL menu item has three sub-items:  Load, Save, and Clear.
  278. The LOAD item will load a level into the editor.  The levels are
  279. all stored in memory and thus this will be fast.  The SAVE item
  280. will save the current edit level into the level selected.  The
  281. CLEAR item will clear the edit level to a "default" empty level.
  282.  
  283. The edit tools are the different drawing items.  They are:
  284.  
  285.     BRICK        - This is the standard brick.
  286.     PINCK BRICK    - This is the pushable brick.
  287.     DROP BRICK    - This is the DROP brick that will vanish after
  288.               the last "grow" pellet is eaten.
  289.     POP-UP BRICK    - This is the brick that will appear after the
  290.               snake has travelled over it.
  291.     GROW PELLET    - This is the GROW food pellet.  There should
  292.               be atleast one on the screen.
  293.     SHRINK PELLET    - This is the SHRINK food pellet.
  294.     ERASE        - To draw blank areas.
  295.  
  296. You draw the item much like in a paint program.  You can erase an item
  297. by just drawing it again or using the ERASE tool.
  298.  
  299. Levels are saved and loaded from the in-memory storage.  If you make
  300. any changes to the levels, they are stored on disk when the program
  301. exits.
  302.  
  303. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  304.                      Level Design Rules and Hints
  305.  
  306. #1  When designing a level you *MUST* have one POP-UP brick along the
  307. edge of the level.  This is the place where the snake will start the
  308. level at.  It is important that it be in place.
  309.  
  310. #2  If you have a level in which the exit is a DROP brick, you *MUST*
  311. have atleast one GROW pellet.  The DROP bricks drop when the last GROW
  312. pellet is eaten by the snake.
  313.  
  314. #3  It is rather easy to make a level impossible.  Make sure that you
  315. play-test the levels as much as possible.  If you can not finish it,
  316. maybe it needs to be changed.
  317.  
  318. #4  Try to make the levels interesting, with little puzzles that need
  319. to be solved.  Things like PUSH bricks are very useful in these cases.
  320. Also, areas that the snake can go into and solve only if it is small
  321. enough.  Take a look at some of the levels that come with SnakePit.
  322.  
  323. #5  Remember that if you change a level that it is saved only when
  324. you quit the program.
  325.  
  326. #6  Remember that if you run SnakePit from the PROJECT icon or via
  327. the CLI without a data file, all changes will happen in the executable.
  328. You could end up losing the screens that come with the program.
  329.  
  330. #7  Share your new levels with your friends.  Just give them your data
  331. file and they will be able to use the new levels.
  332.  
  333. #8  If you come up with some levels that you think are good, please
  334. send the data files to me.  I hope to be able to put together a set
  335. of data files for those who get hooked.
  336.  
  337. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  338.                 Files and Sizes in this distribution
  339.  
  340. If the file sizes do not match you do not have the original version.
  341. In that case, please contact MKSoft Development and the source of
  342. the files such that the problem can be corrected.
  343.  
  344. ContinueImageData.h         6094 ----rwed
  345. Data.info                   1585 ----rwed
  346. HighScoresImageData.h      97962 ----rwed
  347. MakeFile                    3248 ----rwed
  348. PauseImageData.h           18118 ----rwed
  349. Pit_Stuff.ASM               1067 ----rwed
  350. ReadMe                     15045 ----rwed
  351. Screen.ASM                108641 ----rwed
  352. SelectKeysImageData.h      52292 ----rwed
  353. SelectLevelImageData.h     24457 ----rwed
  354. Snake.c                     3571 ----rwed
  355. Snake.h                     2701 ----rwed
  356. SnakePit                  254900 ----rwed
  357. SnakePit.info               1177 ----rwed
  358. Snake_Edit.c                5274 ----rwed
  359. Snake_Main.c                2772 ----rwed
  360. Snake_Parts.h               9183 ----rwed
  361. Snake_Play.c               11884 ----rwed
  362. Snake_Save.c                3192 ----rwed
  363. Snake_Save.h                 173 ----rwed
  364. Snake_Sound.c               5029 ----rwed
  365. Snake_Splash.asm          128026 ----rwed
  366. Snake_Stuff.c               3055 ----rwed
  367. Snake_Windows.c            29473 ----rwed
  368. Sounds.ASM                296198 ----rwed
  369. 25 files - 2178 blocks - 1084028 bytes
  370.